package armazenamento;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import model.Anuncio;
import model.Usuario;

public class Cadastros {
	// referência para uma única instância - Singleton
	private static Cadastros cadastros;
	private Integer contadorIdAnuncio =1;
	
	private Map<String, Usuario> usuarios = new HashMap<String, Usuario>();
	
	private Cadastros() {
		super();
	}
	
	public static Cadastros getInstance() {
		if (cadastros == null) {
			cadastros = new Cadastros();
		}
		return cadastros;
	}
	
	public boolean addUsuario(Usuario novo) {
		if (!usuarios.containsKey(novo.getLogin())) {
			usuarios.put(novo.getLogin(), novo);
			return true;
		}
		return false;
	}
	
	public Usuario getUsuario(String login) {
		
		return usuarios.get(login);
	}
	
	public List<Anuncio> getAnuncios(){
		List<Anuncio> temp = new ArrayList<Anuncio>();
		Set<String> teste = usuarios.keySet();		
		Iterator<String> it = teste.iterator();
		while(it.hasNext()){
			temp.addAll(usuarios.get(it.next()).getAnuncios());		
		}
		return temp;
	}

	public static Cadastros getCadastros() {
		return cadastros;
	}

	public static void setCadastros(Cadastros cadastros) {
		Cadastros.cadastros = cadastros;
	}

	public Integer getContadorIdAnuncio() {
		return contadorIdAnuncio++;
	}

	


}
